草庐IT

iphone - Objective-C DRY JSON 映射和对象创建

全部标签

ruby-on-rails - 为 memcached 和 Rails 组合片段和对象缓存的最佳方法

假设您有一个显示最新帖子的页面片段,并且您在30分钟后将其过期。我在这里使用Rails。30.minutes)do%>...显然,如果该片段存在,您不需要进行数据库查找来获取最新的帖子,因此您也应该能够避免这种开销。我现在正在做的是Controller中类似这样的东西,它似乎可以工作:unlessRails.cache.exist?"views/recent_posts"@posts=Post.find(:all,:limit=>20,:order=>"updated_atDESC")end这是最好的方法吗?安全吗?我不明白的一件事是为什么片段的键是“recent_posts”,而稍后

ruby - 模仿另一个 Ruby 类,使对象通过 === 类型检查

我想创建一个充当特定类的对象,例如Fixnum,但不是该类或其子类的实例。这有多种用例。在Fixnum案例中,我想定义一个更具体的整数类型,它本质上是Fixnum但也实现了一些额外的逻辑。我不能对Fixnum本身进行子类化,因为不能对Fixnum和Symbol等直接类型进行子类化。另一个用例是在自动化测试中进行模拟:有时您想要创建一个对象,它的行为类似于某个类(通常是模型实例),但出于技术原因不是该类的实例。下面是如何创建一个特定的整数类型,将所有方法委托(delegate)给一个内部存储的fixnum:require'delegate'require'forwardable'#int

Ruby:捕获发送到对象的所有方法

我正在创建一个奇怪的类,我想在其中捕获发送到该类对象的每个方法。我可以使用method_missing实现大部分我想要的,例如classMyClassdefmethod_missingm,*args#dostuffendend接下来的问题是MyClass从Object继承的所有实例方法。我可以一个接一个地检查每个方法并重新定义它们,但我希望有一种更灵活的方法。当我尝试访问这些实例方法时,我尝试过的所有元编程方法都出现了NameError错误。 最佳答案 如@DanCheail的评论和回答所述,如果您使用的是ruby​​1.9+,则应

ruby-on-rails - 从表单服务器端 Ruby on Rails 创建文本文件

我正在使用RubyonRails,并且有一个从用户输入中获取信息的表单。然后我想获取用户输入并将其写入服务器端的文本文件。我希望将文件保存在某个地方,例如/public/UserInput.txt。有没有办法使用RubyonRails来做到这一点?还是我需要一种不同的语言来执行此操作,例如PHP?无论哪种情况,谁能举例说明如何做到这一点?提前致谢。更新我正在尝试的没有给我文本文件的代码是:after_save:create_filedefcreate_fileparameter_file=File.new('C:\\parameter_file.txt',"w")parameter_f

json - 如何在 Ruby 中创建 JSON 对象

我正在使用Ruby创建一个JSON文件。我需要在JSON文件中创建对象“companies”。预期结果:{"companies":[{\"label\":\"Wayfair\",\"values\":[54]},{\"label\":\"Move24\",\"values\":[29]},{\"label\":\"Auto1\",\"values\":[23]},...]}我得到了什么:["{\"label\":\"Wayfair\",\"values\":[54,54]}","{\"label\":\"Move24\",\"values\":[29,29]}","{\"label\"

ruby - 将哈希值分配给对象的 DRY 方法

我正在寻找一种优雅的方式来将存储在哈希中的值分配给预先存在的对象。需要明确的是,如果我有一个对象,比如具有两个属性的obj,比如名称和年龄,我想分配来自哈希的值而不做类似的事情:obj.name=hash[:name]obj.age=hash[:age]感谢您的关注。西蒙妮 最佳答案 最好的办法可能是简单地定义一个像update_attributes这样的方法,它接受一个散列并在类的实例方法中执行它。扩展其他人所写的内容以及您似乎需要的内容我认为您最好的选择是:hash.keys.eachdo|key|m="#{key}="obj.

ruby-on-rails - 使用默认键创建新哈希

我想用来自数组的索引创建一个散列。ary=["a","b","c"]h=Hash.new(ary.each{|a|h[a]=0})我的目标是从这样的散列开始:h={"a"=>0,"b"=>0,"c"=>0}以便稍后当哈希更改时我可以使用h.default重置它不幸的是,我设置哈希的方式不起作用...有什么想法吗? 最佳答案 你应该首先实例化你的散列h,然后用数组的内容填充它:h={}ary=["a","b","c"]ary.each{|a|h[a]=0} 关于ruby-on-rails-

ruby-on-rails - 如何在 Ruby 中为模型创建延迟加载属性?

我想创建一个延迟加载的属性,它返回模型上的一个集合,我该怎么做?我不想为此创建关联。所以我希望它返回一个集合,如果集合还没有被初始化然后访问数据库,返回行,然后初始化它。如果它运行一次,则无需再次运行它,因为下一个页面请求将重新开始。 最佳答案 添加实例属性(例如@my_attribute)然后定义defmy_attribute@my_attribute||=initialize_my_attributeend(注意:initialize_my_attribute是您实现的函数/方法,它将加载您想要的值。)这是如何工作的:该属性以一

ruby - 使用 Rake 为 Gem 创建可执行文件的最佳方式

使用Rake为Gem创建可执行文件(bin/目录中的文件)的最佳方法是什么?我有一个gem,我想为其制作一个可执行文件,但我不太确定如何实际创建可执行文件。 最佳答案 您不需要生成gem的可执行文件。理想情况下,您的可执行文件取决于您的gem为功能提供的库。例如,看看theherokuexecutableintheHerokugem:#!/usr/bin/envrubylib=File.expand_path(File.dirname(__FILE__)+'/../lib')$LOAD_PATH.unshift(lib)ifFile

ruby - 测试 ActiveSupport::TimeWithZone 对象的相等性

谁能解释一下d1为什么大于d2?他们是同一个该死的约会对象(或者至少在我看来他们是这样的)。Loadingdevelopmentenvironment(Rails3.0.8)ruby-1.9.2-p180:001>d1=Event.first.updated_at=>Thu,22Sep201102:24:28PDT-07:00ruby-1.9.2-p180:002>d2=Time.zone.parse("2011-09-22T02:24:28-07:00")=>Thu,22Sep201102:24:28PDT-07:00ruby-1.9.2-p180:003>d1.class=>Act